package com.copm.ifm.common.generate;


import com.copm.ifm.common.generate.builder.CodeGenerator;
import com.copm.ifm.common.generate.config.GeneratorConfig;

import java.util.LinkedHashSet;
import java.util.Set;

/**
 * _Generator
 * 自动生成器
 *
 * @author Achin
 * @create 2019-01-11 10:50
 */
public class _Generator {


    /**
     * hr表 正则表达式：[a-zA-Z_0-9]*  匹配所有的数字和字母以及下划线
     *
     * @deprecated 不要用这个，用下面那个三个参数的
     */
    @Deprecated
    private static GeneratorConfig INSP = new GeneratorConfig("sys_area_auth", "org")
            .setEntity(true)
            .setService(true)
            .setServiceImpl(true)
            .setMapper(true)
            .setMapperXml(true)
            .setAuthor("tp");


    /**
     * hr表 正则表达式：[a-zA-Z_0-9]*  匹配所有的数字和字母以及下划线
     * <p>
     * 根据功能分包管理
     *
     * @param includeTable 表名
     * @param moduleName   模块名
     * @param functionName 功能名
     */
    private static GeneratorConfig NEW = new GeneratorConfig("sys_dept", "sys", "dept")
            .setEntity(true)
            .setService(false)
            .setServiceImpl(false)
            .setMapper(false)
            .setAuthor("tp");

    private static Set<GeneratorConfig> configs = new LinkedHashSet<>();

    /**
     * 注意：生成完成后将一下代码注释掉，防止重新生成会覆盖原有的文件，编写的代码会被清空
     */
    static {
        configs.add(NEW);  //insp模块
    }


    /**
     * 运行生成相关文件
     */
    public static void main(String[] args) {
        configs.forEach(CodeGenerator::generator);
    }

}
